<?php
require_once 'lib/libs.php';
session_start ();

// //importante. completar los campos que faltan!!!!!!
$smarty = getSmarty ();

//ATENCION VARIABLE TEMPORAL
$idUsrTmp = 38;
//FIN VARIABLE TEMPORAL

if (isset ( $_REQUEST ['operacion'] )) {
	$operacion = $_REQUEST ['operacion'];
	
	
	if ($operacion == 'getWeekAdmin') {
		
		$week = $_REQUEST ['week'];
		$days = DateUtils::getWeekNext7Days($week);
		$toWeekNext7 = DateUtils::getFromToWeekNext7($week);
		$from = $toWeekNext7[0];
		$to = $toWeekNext7[1];
// 		$horarios=DAOHorario:: getAllFullJoined($from, $to, $idUsrTmp);
		$horarios=DAOHorario:: getAllFullJoined($from, $to);
		echo json_encode(array($days,$horarios));
		return;
	}
	
	if ($operacion == 'registrarPresente') {
	
		$idUsr = $_REQUEST ['idUsr'];
		$idClase = $_REQUEST ['idClase'];
		$presente = $_REQUEST ['presente'];
		DAOUsuarioClase::actualizarPresente($idUsr,$idClase,$presente);
		return;
	}
	if ($operacion == 'reservaTurno') {
		
		$idUsr = $_REQUEST ['idUsr'];
		$idHorario = $_REQUEST ['idHorario'];
		$idClase = $_REQUEST ['idClase'];
		
		$user = DAOUsuario::getById($idUsr);
		$errorMessage=null;
		if($user->creditos<1 && $user->libre!='S'){
			$errorMessage = "No posee creditos suficientes";
		}elseif(DateUtils::getNowMySqlDate()>$user->vencimientoCreditos){
			$errorMessage = "Sus creditos han expirado";
		}
		if($errorMessage!=null){
			echo json_encode(array('errorMsg' => $errorMessage));
			return;
		}
		
		$toWeekNext7 = DateUtils::getFromToWeekNext7(0);
		$from = $toWeekNext7[0];
		$to = $toWeekNext7[1];
		$clase=null;
		
		$idClase = DAOHorario::existeClaseInstanciada($from, $to, $idHorario);
		if($idClase == -1){
			$clase = new Clase();
			$clase->setHorario ( $idHorario );
			$clase->setVacantes (15);
			$clase->setFecha ( DateUtils::getDateInAWeekFromHorario($idHorario));
			$clase = DAOClase::add($clase);
			$idClase = $clase->id; 
		}else{
			$clase = DAOClase::getById($idClase);
		}

		if($clase->vacantes<1){
			$errorMessage = "No hay mas vacantes en la clase seleccionada";
		}if(DAOUsuarioClase::existeReserva($user->id,$clase->id)!=-1){
			$errorMessage = "Ya existe una reserva realizada para esa clase";
		}if($errorMessage!=null){
			echo json_encode(array('errorMsg' => $errorMessage));
			return;
		}
		
		if($clase->vacantes > 0 ){
			$clase->setVacantes($clase->vacantes -1);
		}
		DAOClase::update($clase);
		
		if($user->libre=='N'){
			$user->setCreditos($user->creditos -1);
			$user = DAOUsuario::updateCreditos($user);
		}
		
		
		$usuarioClase = new UsuarioClase();
		$usuarioClase->setUsuario ($idUsr);
		$usuarioClase->setClase ($idClase);
		$usuarioClase->setFechaInscripcion(DateUtils::getNowMysqlDate());
		if($user->libre=='S'){
			$usuarioClase->setCreditosRestantes(-1);
		}else{
			$usuarioClase->setCreditosRestantes($user->creditos);
		}
		DAOUsuarioClase::add($usuarioClase);
		echo json_encode(array($clase,$user));
		return;
	}
	if ($operacion == 'getReservas') {
		$idUsr = $_REQUEST ['idUsr'];
		$reservas = DAOUsuarioClase::getByUsernameId($idUsr);
		echo json_encode($reservas);
		return;
	}	
	if ($operacion == 'getInscriptos') {
		$idClase = $_REQUEST ['idClase'];
		$inscriptos = DAOUsuario::getUsersByClaseId($idClase);
		echo json_encode($inscriptos);
		return;
	}
		
}

$smarty->assign ( 'operacion', $operacion );
$smarty->assign ( 'seccion', 'promocion' );
$smarty->display ( 'admin.html' );

?>